package com.zbkj.crmeb.store.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 欧洲ERP商品SKU表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class EuropeProductSku extends Model<EuropeProductSku> {
    private static final long serialVersionUID = 1L;

    /**
     * sku ID
     */
    @JsonProperty(value = "id")
    @TableId(value = "id", type = IdType.INPUT)
    private String id;

    /**
     * 商品id
     */
    @JsonProperty(value = "goods_id")
    private Integer goodsId;
    /**
     * 超级颜色
     */
    @JsonProperty(value = "super_color")
    private String superColor;
    /**
     * 颜色
     */
    @JsonProperty(value = "color")
    private String color;
    /**
     * 结构
     */
    @JsonProperty(value = "fabric")
    private String fabric;
    /**
     * 成分
     */
    @JsonProperty(value = "composition")
    private String composition;
    /**
     * 尺寸
     */
    @JsonProperty(value = "size_and_fit")
    private String sizeAndFit;
    /**
     * 制造地
     */
    @JsonProperty(value = "made_in")
    private String madeIn;
    /**
     * 库存
     */
    @JsonProperty(value = "stock")
    private String stock;
    /**
     * 相片
     */
    @JsonProperty(value = "pictures")
    private String pictures;
    /**
     * 小黑仓创建时间
     */
    @JsonProperty(value = "new_created_time")
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    private Date newCreatedTime;
    /**
     * 小黑仓修改时间
     */
    @JsonProperty(value = "new_modify_time")
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    private Date newModifyTime;
    /**
     * 是否删除
     */
    @JsonProperty(value = "is_delete")
    private Integer isDelete;
    /**
     * Europe创建时间
     */
    @JsonProperty(value = "old_created_time")
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    private Date oldCreatedTime;
    /**
     * Europe修改时间
     */
    @JsonProperty(value = "old_modify_time")
    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
    private Date oldModifyTime;

    /**
     * sku 尺寸
     */
    @JsonProperty(value = "size")
    private String size;

    /**
     * sku 数量
     */
    @JsonProperty(value = "qty")
    private Integer qty;

    /**
     *
     * 更新标记, 0 未改变 1 新增，2 更新
     */
    @JsonProperty(value = "update_flag")
    private Integer updateFlag;
    /**
     * sku
     */
    @JsonProperty(value = "suk")
    private String suk;

    public String getAttrKey(){
        return this.goodsId+"-"+this.color+"-"+this.size;
    }

    public String getSuk(){
        if(StringUtils.isNotBlank(suk)){
            return suk;
        }
        List<String> sukList= new ArrayList<String>();
        if(StringUtils.isNotBlank(color)){
            sukList.add(color);
        }
        if(StringUtils.isNotBlank(size)){
            sukList.add(size);
        }
        return String.join(",",sukList);
    }

}
